home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / dsksl091.zip / dsksleep.doc < prev    next >
Text File  |  1997-06-04  |  14KB  |  379 lines

  1. -*- Mode: indented-text -*-
  2. --- $Id: dsksleep.doc,v 1.8 1997/06/04 00:21:44 vitus Exp $
  3.  
  4.     Disk Sleeper Filter - Driver Dokumentation
  5.  
  6. Description
  7.  
  8.     Disk Sleeper Filter is  a filter driver  to stop your _SCSI_ disks
  9.     while you're doing something else than working with your computer.
  10.  
  11.  
  12. Legal stuff (we need this, don't we?)
  13.  
  14.     The author  disclaims all warranties  as to this software, whether
  15.     express  or  implied,  including  without limitation  any  implied
  16.     warranties of  merchantability, fitness for  a particular purpose,
  17.     functionality,  data  integrity  or   protection,   in so  far  as
  18.     permitted by applicable legislation.
  19.  
  20.     All trademarks are property of their respective owners and appear
  21.     for identification purposes only.
  22.  
  23.  
  24. Installation
  25.  
  26.     It is recommended you  have an OS/2  boot disk ready, just in case
  27.     the system locks up during the boot process and you want to remove
  28.     the  driver.   On Warp you  may  use use   ALT-F1, C for  the same
  29.     purpose to boot to a command line with your orginal Config.Sys.
  30.  
  31.     Execute  DDINSTAL from a  OS/2 command prompt  or double-click the
  32.     Device Driver Install object (located in  the System Setup folder)
  33.     if your system is Warp.  Change the source directory if neccessary
  34.     and a selection  list will open   asking you to  install the 'SCSI
  35.     Disk Sleeper'.   Mark  that line and  click  on  OK.  Reboot  your
  36.     machine.
  37.  
  38.     Installation by hand is easy:
  39.  
  40.     Copy  DSKSLEEP.FLT to c:\ or  c:\os2\boot, assuming c: is your
  41.     boot drive.
  42.  
  43.     Edit  your  c:\Config.Sys file (i.e.  using  the  OS/2 "System
  44.     Editor"):
  45.  
  46.     Add the following line to your Config.Sys:
  47.     BASEDEV=DSKSLEEP.FLT /V        (no subdirectory name!)
  48.  
  49.     The  position   of  'BASEDEV=DSKSLEEP.FLT' in  Config.Sys  doesn't
  50.     matter.  If, however, you encounter  problems try top of file  (if
  51.     this  solves  your problems please report  with  a listing of your
  52.     Config.Sys).
  53.  
  54.     WARNING: as this  piece of software accessses  vital parts of your
  55.     system (without  disks   there  is not  much   to do  :),   it  is
  56.     recommended to  use  the '/DEBUG:1' (see   below)  switch at least
  57.     once.  If  this succeeds use 'dsl' to  set a  really short timeout
  58.     (i.e.  3 minutes), let  the disks be stopped and  do any access to
  59.     restart them (click on WPS, open folders, etc.).
  60.  
  61.     If both test complete successfully you should regard DSKSleep as a
  62.     working piece of software on your computer.
  63.  
  64.     If the first try to restart a disk isn't successfull DSKSleep will
  65.     beep and do a  retry.  If that retry  fails DSKSleep will beep and
  66.     do a retry.  If that retry fails...  If your beeping machine hangs
  67.     on disk restart you know where it comes from. <g>
  68.  
  69.  
  70. Options
  71.  
  72.     /V
  73.     Verbose, display some usefull and unusefull information (this
  74.     switch is always enabled in the unregistered version)
  75.  
  76.     /DEBUG
  77.     Debugging display
  78.  
  79.     /DEBUG:1
  80.     Debugging display and start/stop all devices once when driver
  81.     is loading
  82.  
  83.     /UT:(a1,u1,min1),(a2,u2,min2)
  84.     List of disks with special timeout needs.  You may exclude the
  85.     'min' value (or set it zero), in this cause the default
  86.     (possible changed via '/T:') is used.
  87.  
  88.     /!UT:(a1,u1),(a2,u2)
  89.     List of disks to exclude from sleeping.  They are added to
  90.     internal tables but never stopped.  Use IOCtl (as in dsl.exe)
  91.     to enable sleeping these disks.
  92.  
  93.     /T:<min>
  94.     Set sleeping time to <min> minutes.  Default: 30 minutes.
  95.     Remember that starting a disk drive means stress for it's
  96.     mechanical parts and do not set this time to low.  Maximum
  97.     time to set via '/T:<min>' is 1092 minutes (about 18 hours).
  98.  
  99.  
  100.     The 'a' and 'u' values in above options  are indeces.  'a' depends
  101.     on the ADD order in Config.Sys and numbers all adapters (including
  102.     floppy controllers,  etc.).  'u' is  an  unit index which  the ADD
  103.     determines.  BTW: these are the same values as dsl.exe displays if
  104.     executed without parameters.
  105.  
  106.     Examples:
  107.  
  108.     Stop first disk on adapter 1  after 20 minutes, second disk on
  109.     that  adapter after 15   minutes.  All  other  disks   will be
  110.     stopped after 20 minutes (the default value):
  111.  
  112.     BASEDEV=dsksleep.flt /UT:(1,0,20),(1,1,15)
  113.  
  114.  
  115.     Don't stop first disk  on adapter 2, all  other disks shall be
  116.     stopped after 60 minutes:
  117.  
  118.     BASEDEV=dsksleep.flt /!UT:(2,0) /T:60
  119.  
  120.  
  121.     Using an explicit list of devices, specify default timeout for
  122.     all of  them.    Note  that  this  command  line  does nothing
  123.     usefull:
  124.  
  125.     BASEDEV=dsksleep.flt /UT:(1,0),(1,2),(1,3)
  126.  
  127.  
  128.     One  word  about screen output:    BASEDEV drivers cannot  display
  129.     anything   on the console  immediately,  they queue messages to be
  130.     displayed later by  the  system initialization.  Due to  this fact
  131.     you might not   see any  messages at  all  (if system  hangs/traps
  132.     before they are yanked to console).
  133.  
  134.     Best chances to see anything is to copy  this driver to the second
  135.     of your  "utility disks" (or installation  disks  if you don't run
  136.     Warp), change  the Config.Sys there (BASEDEV=dsksleep.flt /DEBUG:1
  137.     and boot from them.  Now you don't rely on any hard disk.
  138.  
  139.     Another way is to use 'dsl -m' to display  all messages long after
  140.     the boot completed.  But this implies  that DSKSleep can be loaded
  141.     without traps or hangs.
  142.  
  143.  
  144. DSL Utility, IOCtl Interface
  145.  
  146.     To change the timeout values on a running  system, a small utility
  147.     named DSL is included.  This thing started as a debugging tool and
  148.     is totally command line based.
  149.  
  150.     Calling DSL without any options will display a list of devices and
  151.     their  timeout values.   The  following  opions may  change  DSL's
  152.     behavior:
  153.  
  154.     -c <a1>,<u1>,<m1> [<a2>,<u2>,<m2>]
  155.  
  156.     Change timeout  of unit <u1> at adapter   <a1> to <m1> minutes
  157.     and unit <u2> at adapter <a2> to  <m2> minutes.  Supply simple
  158.     numeric values  for all <>  parameters (values  from output of
  159.     DSL w/o parameter),  insert a comma  between adapter, unit and
  160.     timeout  parameter (no blank!)   and at  least a single  blank
  161.     between the first and the second adapter-unit-timeout triple.
  162.  
  163.     Example, on my system DSL<return> says:
  164.  
  165.       Current settings:
  166.        Adapter Unit   Minutes
  167.          1       0       40
  168.          1       1       30
  169.  
  170.     To change the first device to 10 minutes  and the second to 15
  171.     I would use:
  172.  
  173.         DSL -c 1,0,10     1,1,15
  174.  
  175.     Got  the point?  If  you   find this difficult  to  understand
  176.     netmail me a better description and I  will it include in this
  177.     file. :-)
  178.  
  179.     -q
  180.  
  181.     Display seconds left until a device will be stopped.  That's a
  182.     value which is resetted  to  your configured timeout value  on
  183.     every I/O.
  184.  
  185.     -i <a1>,<u2>,<s1>
  186.  
  187.     Change timer  value for unit    <u1> on adapter  <a1> to  <s1>
  188.     seconds.  Same syntax as '-c' parameter.  If you set <s1> to 0
  189.     the device  will  be stopped  immediately (nearly).   However,
  190.     remember that any I/O will reset a timer to it's maximum.
  191.  
  192.     -m
  193.  
  194.     Displays boot time messages.  Output will be something like:
  195.  
  196.  
  197.         SCSI Disk Sleeper
  198.         Copyright 1996-97 by Vitus Jensen (2:2474/424)
  199.         Not registered for commercial use
  200.         Adapter 1, Unit 0 installed (40 min)
  201.         Adapter 1, Unit 1 installed (30 min)
  202.  
  203.  
  204.     Now,  if  you do  not like DSL   at all, feel  free to  modify it.
  205.     Sourcecode  and  a  header   how to  access DSKSleep's  IOCtl   is
  206.     provided.  Perhaps it  will be nice to  have a PM version  of DSL?
  207.     DSL is enough for me but if you write  (or thinking to write) such
  208.     a beast  as Share-/Freeware, netmail me  and I will place a notice
  209.     about it here.
  210.  
  211.     BTW: there is  a 'hidden' option  '-v'  in DSL  (as in  most of my
  212.     programs) it may help to insert it in front of any other option...
  213.  
  214.  
  215. Tested Equipment
  216.  
  217.     DSKSleep should work on any  computer running OS/2 2.0 or  higher.
  218.     It should work  with any SCSI-related software  you  may think of.
  219.     That, at least, is the theory...
  220.  
  221.     Please mail  tested combinations (successfull or  failed) so I can
  222.     try to figure out where  problems reside and make DSKSleep better.
  223.     Especially usefull would be information from machines running more
  224.     than simple  HPFS  and/or  FAT  drives (i.e.  HPFS386,   tapes, cd
  225.     writer, ...).
  226.  
  227.     Any report should include at least CPU, RAM, OS/2 Version, FixPak,
  228.     Filesystem,   SCSI  Controller, ADD   Driver (incl. Version), SCSI
  229.     Disks, other SCSI Devices.
  230.  
  231.     If '/DEBUG:1' fails a   list of screen  messages would  be greatly
  232.     appreciated.
  233.  
  234.  
  235.     I have  discontinued to publish all  equipment/tester combinations
  236.     as this started to be too much stuff to write <g>.  Thanks for the
  237.     feedback!
  238.  
  239.     Successfully tested equipment include:
  240.  
  241.     486DX,  Pentium and compatibles at  different speeds equipped with
  242.     16 to 64 MByte RAM.
  243.  
  244.     Controller: AHA1542B, AHA1520, AHA2940, AHA2940UW, AIC7860, AIC6360,
  245.         NCR810, NCR8150
  246.  
  247.     Disks: Conner    CFA 540S
  248.        HP        C3325A
  249.        IBM        DFHS S2F, DORS 32160S, DPES 31080,
  250.        Quantum    LPS 540, 730
  251.        Seagate    Wren Runner 7
  252.        WD        SP4200
  253.  
  254.  
  255.     Betatesters include (but are most certainly not limited to):
  256.  
  257.     Petric Frank, Jochen Schnürle, Thomas Waldmann, Stefan Mielke,
  258.     Herwig  Bauernfeind, Thorsten  Kowalski, Murat  Kenger, Günter
  259.     Bartmann, Markus Noller,  Stephan Bieker, Nicolai Dufva  and a
  260.     lot more I probably forgot or who didn't write any comments.
  261.  
  262.  
  263.     DSKSleep is written (and tested before release) on the following
  264.     machines:
  265.  
  266.     486DX4-133, 32 MB RAM, 256 KB Cache, ATI Mach32 VL
  267.     AHA6360 (Adaptec VL)
  268.     Western Digital Piranha SP4200 (200MB SCSI-II)
  269.     IBM DORS (2.1GB SCSI-II)
  270.     AppleCD 150 (Sony CDU-8002 Apple-SCSI + CD800X.FLT)
  271.     Tandberg TDC 3600 (250MB SCSI-I, QIC)
  272.     OS/2 Warp 3 w/ WinOS2 (protectonly)
  273.  
  274.     486DX-50, 20 MB RAM, 256 KB Cache (disabled), ATI Mach8
  275.     AHA1542B
  276.     Seagate Wren Runner 7 (1GB SCSI-I, by Imprimis)
  277.     OS/2 Warp 3 plus LAN Server 4.0 Entry
  278.  
  279.     Remarks
  280.         Wren Runner still  cannot be  stopped.  SCB completes  w/o
  281.         errors but device continues to turn.
  282.  
  283.  
  284. Registration
  285.  
  286.     In general, this  driver is a  freeware program  for noncommercial
  287.     users.  If  you  are a  noncommercial user,   there is no  charge.
  288.     However I would like  to hear from  you on which software/hardware
  289.     combinations this  driver  is  used  successfully.  Just  write  a
  290.     netmail or a nice postcard (see addresses below).  This will tell
  291.     my girlfriend the spent time wasn't totally useless. <g>
  292.  
  293.     The  unregistered version isn't   crippled in any  way.   The only
  294.     difference is that the registered version won't  display a logo if
  295.     not told so via '/V'.
  296.  
  297.     You are encouraged to copy and pass on the unregistered version of
  298.     this driver, if  the archive is  distributed in  its original form
  299.     (complete and unmodified).  Please don't charge any money for the
  300.     distribution exceeding the costs of media, etc.
  301.  
  302.  
  303.     You are a commercial user if your machine is being run by (or for)
  304.     a   corporation, government, company,  foundation,   or  any other
  305.     organization.  In this case I expect you to register this software
  306.     after a reasonable testing period (60 days).
  307.  
  308.     On registration you will receive a key based on  your name to feed
  309.     in the regme.exe program to change the startup logo and remove the
  310.     '/V always'  mode.  You will NOT receive  a new archive.  This key
  311.     will be valid for all versions of the driver.
  312.  
  313.     Registration fee is DM 15,- per key or the  equvalent in a foreign
  314.     currency.  Payment may   be  made through Eurocheque   (europe) or
  315.     postal  money order.  If you  decide to send  this  money inside a
  316.     simple envelope  (I'm fair :-) use  DM or danish or swedish crowns
  317.     as I travel those countries regulary.
  318.  
  319.     Response will  be through fidonet crashmail  (strongly preferred),
  320.     fidonet netmail, FAX  or EMail.
  321.  
  322.     If you cannot be reached elecronically and don't have a friend who
  323.     can,  you may request   an answer by snail  mail.   Please add the
  324.     estimated costs for the letter  to  the registration fee.   German
  325.     users: simply include a self-addressed envelope.
  326.  
  327.     For all  orders: please WRITE YOUR NAME  CLEAR as the key  will be
  328.     based on it.
  329.  
  330.  
  331. Source Code Availability
  332.  
  333.     What do you need it for?
  334.     As an example?  It's written using Microsoft C 6.0 and
  335.     the OS/2 DDK.  If you already own the DDK you have many examples
  336.     how to write filter drivers.  If you don't you get nothing usefull
  337.     from my source code.
  338.  
  339.     If your policy is to have any program you use in source code, you
  340.     may contact me, explain your reasons and we will handle this on a
  341.     personal base.
  342.  
  343.  
  344. ToDo List
  345.  
  346.     - Resource Manager Calls (plug n' play <g>)
  347.     - Recode driver/DDK routines to use WatCom C
  348.     - More?  IOCtls?
  349.  
  350.  
  351. Author
  352.  
  353.     Vitus Jensen (under assistance of Liesbeth  who mostly talks about
  354.     cows(moo!) and tractors)
  355.  
  356.     Address: Tischlerstr. 8, D-30916 Isernhagen, Germany
  357.     Fidonet: 2:2474/424 (V32bis, X75)
  358.     EMail: vitus@warpnet.de
  359.     FAX: +49-5136-893003 (thanks to Harald Pollack)
  360.     BBS: +49-5136-893003 (V32bis, X75, under construction)
  361.  
  362.     Music: Chet Baker, Dinah Washington, Antonio Carlos Jobim, ...
  363.  
  364.     Written for Version: 0.91
  365.     Date: 4/6-1997
  366.  
  367.  
  368.               (__)             (__)    *        (__) *      (__)
  369.               (oo)             (oo)     \       (oo) |      (oo)
  370.       /--------\/      /-oooooo-\/       \-------\/  \-------\/
  371.      * o|     ||      * ooooooooo     o  o|     ||   /     ||
  372.         ||----||     ooooooooooooo        ||----||>==/-----||
  373.      ooo^^    ^^    ooooooooooooooooo     ^^    ^^         ^^
  374.       Cow taking      Cow in deep         Cow getting the sh*t
  375.         sh*t              sh*t             kicked out of her
  376.  
  377.  
  378. === The End ===
  379.